From 12fe102ef96eca9f82091e907124cb72b4efddea Mon Sep 17 00:00:00 2001 From: Daniel Sabo Date: Sun, 20 Dec 2015 03:36:51 -0800 Subject: [PATCH] Add SSE4 to babl-cpuaccel --- babl/babl-cpuaccel.c | 18 ++++++++++++++++-- babl/babl-cpuaccel.h | 2 ++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/babl/babl-cpuaccel.c b/babl/babl-cpuaccel.c index 3445cf6..4e1683e 100644 --- a/babl/babl-cpuaccel.c +++ b/babl/babl-cpuaccel.c @@ -114,7 +114,11 @@ enum enum { - ARCH_X86_INTEL_FEATURE_PNI = 1 << 0 + ARCH_X86_INTEL_FEATURE_PNI = 1 << 0, + ARCH_X86_INTEL_FEATURE_SSSE3 = 1 << 9, + ARCH_X86_INTEL_FEATURE_SSE4_1 = 1 << 19, + ARCH_X86_INTEL_FEATURE_SSE4_2 = 1 << 20, + ARCH_X86_INTEL_FEATURE_AVX = 1 << 28 }; #if !defined(ARCH_X86_64) && (defined(PIC) || defined(__PIC__)) @@ -234,6 +238,12 @@ arch_accel_intel (void) if (ecx & ARCH_X86_INTEL_FEATURE_PNI) caps |= BABL_CPU_ACCEL_X86_SSE3; + + if (ecx & ARCH_X86_INTEL_FEATURE_SSSE3) + caps |= BABL_CPU_ACCEL_X86_SSSE3; + + if (ecx & ARCH_X86_INTEL_FEATURE_SSE4_1) + caps |= BABL_CPU_ACCEL_X86_SSE4_1; #endif /* USE_SSE */ } #endif /* USE_MMX */ @@ -399,7 +409,11 @@ arch_accel (void) #ifdef USE_SSE if ((caps & BABL_CPU_ACCEL_X86_SSE) && !arch_accel_sse_os_support ()) - caps &= ~(BABL_CPU_ACCEL_X86_SSE | BABL_CPU_ACCEL_X86_SSE2); + caps &= ~(BABL_CPU_ACCEL_X86_SSE | + BABL_CPU_ACCEL_X86_SSE2 | + BABL_CPU_ACCEL_X86_SSE3 | + BABL_CPU_ACCEL_X86_SSSE3 | + BABL_CPU_ACCEL_X86_SSE4_1); #endif return caps; diff --git a/babl/babl-cpuaccel.h b/babl/babl-cpuaccel.h index e701e2a..57eb118 100644 --- a/babl/babl-cpuaccel.h +++ b/babl/babl-cpuaccel.h @@ -30,6 +30,8 @@ typedef enum BABL_CPU_ACCEL_X86_SSE = 0x10000000, BABL_CPU_ACCEL_X86_SSE2 = 0x08000000, BABL_CPU_ACCEL_X86_SSE3 = 0x02000000, + BABL_CPU_ACCEL_X86_SSSE3 = 0x00800000, + BABL_CPU_ACCEL_X86_SSE4_1 = 0x00400000, /* powerpc accelerations */ BABL_CPU_ACCEL_PPC_ALTIVEC = 0x04000000, -- 2.30.2